package com.gitee.zhanyao.file;

import lombok.NonNull;

import java.io.IOException;

/**
 * 目录操作策略
 *
 * @author zhanyao
 */
public interface DirectoryStrategy {

    /**
     * 创建
     *
     * @param directory
     * @return boolean
     */
    boolean createDirectory(@NonNull String directory);

    /**
     * 检查目录是否存在
     */
    boolean hasDirectory(@NonNull String directory);

    /**
     * 重命名
     * 必须确保目录层级一致
     */
    boolean renameDirectory(@NonNull String oldDirectory, @NonNull String newDirectory);

    /**
     * 递归删除目录或者文件
     */
    void deleteDirectory(@NonNull String directory) throws IOException;


    /**
     * 获取目录文件列表
     */

    /**
     * 上传
     */

    /**
     * 下载
     */

}
